Micron Document
`:top
`!join`! est une commande `F33f`_`[POSIX`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=POSIX]`_`f qui permet de fusionner les lignes de deux fichiers ayant des champs communs. Elle réalise des `F33f`_`[jointures`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Jointure_(informatique)]`_`f, au sens de l'`F33f`_`[algèbre relationnelle`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Algèbre_relationnelle]`_`f, directement sur des fichiers texte.

Cette commande compare les lignes de deux fichiers triés une à une et si une correspondance est trouvée sur les colonnes passées en argument, elle affichera le regroupement des champs présents sur les mêmes lignes.

>>Contents

• `F0af`_`[Exemple`#exemple]`_`f
• `F0af`_`[Voir aussi`#voir-aussi]`_`f
• `F0af`_`[Liens externes`#liens-externes]`_`f

-─

>>Exemple

Soit le fichier `!`B100`F9d9contacts`f`b`! contenant la liste des membres d'une famille (id, nom, téléphone):

`B100`F9d9ID_1 Jean 123456`f`b
`B100`F9d9ID_2 Caroline 54321`f`b
`B100`F9d9ID_3 Louis 98765`f`b

Et le fichier `!`B100`F9d9ordinateurs`f`b`! contenant la liste des ordinateurs de la maison (id_ordinateur, ordinateur, id_personne).

`B100`F9d9L01 Linux ID_1`f`b
`B100`F9d9M01 Mac ID_2`f`b
`B100`F9d9W01 Windows ID_2`f`b
`B100`F9d9S01 Solaris ID_4`f`b

Premier cas simple. On veut joindre les deux fichiers sur la colonne 1 du premier fichier (-11) et la colonne 3 du deuxième fichier (-23).

`B100`F9d9% join -11 -23 contacts ordinateurs`f`b
`B100`F9d9`f`b
`B100`F9d9ID_1 Jean 123456 L01 Linux`f`b
`B100`F9d9ID_2 Caroline 54321 M01 Mac`f`b
`B100`F9d9ID_2 Caroline 54321 W01 Windows`f`b

Si on souhaite afficher la liste des couples personne-ordinateurs de la maison en formatant la sortie (option -o):

`B100`F9d9% join -11 -23 -o 1.2,2.2 contacts ordinateurs`f`b
`B100`F9d9`f`b
`B100`F9d9Jean Linux`f`b
`B100`F9d9Caroline Mac`f`b
`B100`F9d9Caroline Windows`f`b

Dans le cas d'une `F33f`_`[base de données`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Base_de_données]`_`f on parlerait d'une `F33f`_`[jointure`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=Jointure_(informatique)]`_`f simple (STRAIGHT JOIN).

Pour afficher la liste de toutes les personnes, propriétaire ou non d'un ordinateur:

`B100`F9d9% join -a1 -e'NULL' -11 -23 -o 1.2,2.2 contacts ordinateurs`f`b
`B100`F9d9`f`b
`B100`F9d9Jean Linux`f`b
`B100`F9d9Caroline Mac`f`b
`B100`F9d9Caroline Windows`f`b
`B100`F9d9Louis NULL`f`b

Il s'agirait ici d'une jointure gauche (LEFT JOIN) en `F33f`_`[SGBD`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=SGBD]`_`f. Louis (ID_3) n'est effectivement pas repris dans le fichier `!`B100`F9d9ordinateurs`f`b`!.

Et enfin, la jointure droite (RIGHT JOIN), la liste de tous les ordinateurs et de leur utilisateur éventuel.

`B100`F9d9% join -a2 -e'NULL' -11 -23 -o 2.2,1.2 contacts ordinateurs`f`b
`B100`F9d9`f`b
`B100`F9d9Linux Jean`f`b
`B100`F9d9Mac Caroline`f`b
`B100`F9d9Windows Caroline`f`b
`B100`F9d9Solaris NULL`f`b

En effet, dans le fichier `!`B100`F9d9ordinateurs`f`b`!, le Solaris pointe vers un id (ID_4) qui n'existe pas dans le fichier `B100`F9d9contacts`f`b.

>>Voir aussi

`F33f`_`[GNU Core Utilities`:/page/wikibook/entry.mu`zim=wikipedia_fr_all_nopic_2025-10.zim|entry_path=GNU_Core_Utilities]`_`f

>>>Liens externes

• (fr) Page de manuel de join

• Portail de l’informatique

`c`F0af`_`[↑ Back to top`#top]`_`f`a